// 执行栈 js 语言 得以运行起来 FILO
// 逐行运行
// 执行栈 顶部 当前在运行的代码
// 全局栈 f1 f2 在栈底


// 函数调用
f2();// 入栈 出栈 内存回收
// f1();// 箭头函数是匿名函数 要通过赋值语句赋值给变量 这个过程是执行阶段 不是声明阶段 声明才提升 赋值不提升
// f3();// Cannot access 'f3' before initialization 同上f1；const f3 不提升；var f4声明提升
console.log(f1);
console.log(f4);
console.log('全局作用域 栈')// idle
// var 和 函数声明 提升，函数表达式一律不提升！
const f1 = () => {// const函数声明不提升，表达式都不提升
    console.log('f1 Go')
}

function f2() {// 函数声明整体提升
    console.log('f2 Go')
}

const f3 = function () {// const函数声明不提升
    console.log('f3 Go')
}

var f4 = function () {// var函数声明提升，表达式不提升
    console.log('f4 Go')
}
